﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DataStructures
{
	public interface IBaseTreeList<Element, Tree, TreeList> : IList<Tree>
		where Tree : IBaseTree<Element, Tree, TreeList>
		where TreeList : IBaseTreeList<Element, Tree, TreeList>
	{
		Tree Parent { get; set; }
		new Tree Add(Tree tree);
		Tree Add(Element value);
		Tree Find(Predicate<Tree> predicate);
	}
}
